在JavaScript中,可以使用扩展语法将对象扩展到另一个对象:
const a = {one: 1, two: 2}
const b = {...a, three: 3} // = {one: 1, two: 2, three: 3}
Run Code Online (Sandbox Code Playgroud)
有没有办法以这种方式将打字稿界面传播到另一个界面?
interface IA {
one: number;
two: number;
}
interface IB {
...IA; // Does not work like this
three: number;
}
Run Code Online (Sandbox Code Playgroud)
这样生成的界面IB看起来像这样:
{
one: number;
two: number;
three: number;
}
Run Code Online (Sandbox Code Playgroud) 我有一个HTML节点,我在其上设置了一个非常胖的边框和一个通过CSS缩放和旋转的转换.出于某种原因,在转换之后,在边界外部,节点本身颜色的非常细小的附加边界出现在外面,好像节点的背景延伸到边界下方并且边界不是很大足以覆盖背景颜色.
.transform {
transform: scale(1, .7) rotate(45deg);
}
.container {
width: 100px;
height: 100px;
background-color: chocolate;
border: 20px solid white;
}Run Code Online (Sandbox Code Playgroud)
<div class="container">proper white border</div>
<div class="container transform">slim orange border around actual white border</div>Run Code Online (Sandbox Code Playgroud)
请注意,在顶部框中,由于其颜色设置为白色而设置边框并不明显,但在底部框中,白色边框由另一个框的颜色边框包围.
有什么东西可以防止这种情况发生吗?
我正在尝试将Redux状态存储与TypeScript结合使用。我正在尝试使用Redux的官方Typings,并希望使connect方法(将mapStatetoProps和mapDispatchToProps与组件连接在一起)上的整个调用类型安全。
我通常会看到一些方法,这些方法mapStatetoProps和方法mapDispatchToProps只是自定义类型的,并返回部分props的一部分,例如:
function mapStateToProps(state: IStateStore, ownProps: Partial<IComponentProps>)
: Partial<IProjectEditorProps> {}
function mapDispatchToProps (dispatch: Dispatch, ownProps: Partial<IComponentProps>)
: Partial<IProjectEditorProps> {}
Run Code Online (Sandbox Code Playgroud)
这是可以键入的并且可以工作,但是并不是真正安全的,因为可以实例化缺少props的组件,因为Partial接口的使用允许不完整的定义。然而,部分接口需要在这里,因为你可能希望定义一些道具mapStateToProps和一些中mapDispatchToProps,并不是所有的功能于一体。所以这就是为什么我要避免这种风格。
我目前要使用的是直接将函数嵌入到connect调用中,并使用redux提供的通用类型键入connect调用:
connect<IComponentProps, any, any, IStateStore>(
(state, ownProps) => ({
/* some props supplied by redux state */
}),
dispatch => ({
/* some more props supplied by dispatch calls */
})
)(Component);
Run Code Online (Sandbox Code Playgroud)
然而,这也引发了嵌入式的错误 mapStatetoProps,并mapDispatchToProps呼吁没有规定所有的道具每既是只需要其中的一个子集,但合在一起定义所有道具。
如果两种方法定义的组合值提供了所有必需的道具,而又没有立即定义所有道具的方法之一,那么如何正确键入connect调用,使 mapStatetoPropsand …
我正在尝试使用node.js包readline在命令行上获取用户输入,并且我想通过promise来输入输入。但是,输入永远不会通过then链。我认为问题可能出在回调方法中实现了诺言这一事实,但我不知道该如何解决。
此问题的一个示例如下所示:
import rlp = require('readline');
const rl = rlp.createInterface({
input: process.stdin,
output: process.stdout
});
let prom = new Promise((fulfill, reject) => {
rl.question('Enter input: ', input => rl.close() && fulfill(input));
});
prom.then(result => {console.log(result); return prom})
.then(result => {console.log(result); return prom})
.then(result => console.log(result));Run Code Online (Sandbox Code Playgroud)
如果在node.js中运行,则问题将出现一次,输入输入后程序将停止。我希望它一直等到输入第一个输入后,才应该打印该输入并要求下一个输入。
提前致谢!
我有一个看起来像这样的字符串:
"give %player% %id% %amount%"
Run Code Online (Sandbox Code Playgroud)
一个对象:
{player: "Abc", id: 3, amount: 4, ...}
Run Code Online (Sandbox Code Playgroud)
如何将字符串中的所有变量("%player%","%id%",...)替换为对象中具有相同名称的变量的值?变量名称可能会在各种情况下发生变化,因此应自动更改.另外,有没有办法定义过滤器,比如忽略具有特定名称的所有变量?