假设我有这个声明:
let spyObjs;
spyObjs
的类型将为any
。现在,如果我有此作业:
let spyObjs = {fruit: 'apple', os: 'windows'};
spyObjs
的类型将为{fruit: string, os: string}
,因为可以推断出该类型。我想要的是这个
let spyObjs;
spyObjs = {fruit: 'apple', os: 'windows'};
,以及spyObjs
的类型为{fruit: string, os: string}
。不幸的是,类型仍然是any
。
如何使用TS 3.0做到这一点?
干杯!
好的,很抱歉,示例不明确。该代码看起来更像:
let spyObjs;
let someFunction = () => {
spyObjs = { fruit: 'apple', os: 'windows' };
}
let someOtherFunction = () => {
// user spyObjs here also
}
someFunction()
someOtherFunction()
在这种情况下如何推断类型?
答案 0 :(得分:0)
首先,您不能声明两个具有相同名称的变量。
让spyObjs; let spyObjs = {fruit:'apple',os:'windows'};
Ts错误:无法重新声明块作用域变量“ spyObjs”
第二,当你声明这个 let spyObjs = {水果:“苹果”,操作系统:“ windows”}; 它的类型不再是“ any”。它变为“ {水果:'苹果',操作系统:'Windows'}”