在我的项目中,我遇到了ts编译错误,然后进行了一个简单的演示: 这样的代码
interface ITest {
getAddress: Function,
[keys: string]: {
name: string
// [keys: string]: string //open this
}
}
const person : ITest = {
john: {
name: "john"
},
getAddress: ()=>{
//....
}
}
我工作正常,但是当我重新打开提交行时, ts compile提示错误:
couldn't assign () => void to { [keys: string]: string; name: string; }
我不知道为什么出现此错误或。但我必须这样使用。
我认为这是一个打字稿编译错误?还是[keys:string]列表应该是同一类型?
我的打字稿版本:3.8.3
答案 0 :(得分:0)
嗯,不,这不是bug。您取消注释的行会强制所有属性将每个属性都设为字符串。
wp.data.dispatch( 'core/block-editor' ).insertBlocks( newBlock )
答案 1 :(得分:0)
很抱歉长时间回复...
我有一定的道理。 Function has its name
所以当我编码类似
时const person : ITest = {
john: {
name: "john"
},
getAddress: ()=>{
//....
}
}
我没有任何错误...
像@Eldar一样,[key: string]: string
类型使任何键成为相同类型。