【发布时间】:2020-07-21 01:10:04
【问题描述】:
type ExpectedType = Array<{ name: number, gender?: string }>
function go1(p: ExpectedType) {
}
function f() {
const a = [{name: 1, age: 2}]
go1(a) // doesn't complain
go1([{name: 1, age: 2}]) // complain 'Object literal may only specify known...'
go1(['no matter'].map(n => ({name: 1, age: 2}))) // doesn't complain
}
打字稿代码如上,我的问题是最后三行不一样吗?为什么第一行可以通过,第二行投诉,第三行通过?
也在打字稿操场上: playground
【问题讨论】:
-
这是一个有趣的问题。看起来
const a = [{name: 1, age: 2}] as ExpectedType会抱怨,但为什么要强制转换类型,我不知道。 -
什么版本的打字稿,它在哪里抱怨? IDE?吴服?构建?别的地方?根据您的版本,
a被输入为any,这是允许的。 -
@cjd82187 我在 TypeScript 操场上尝试了最新版本,结果是一样的typescriptlang.org/play/…
标签: javascript reactjs angular typescript