jac*_*118 7 typescript typescript-generics typescript-typings
我想在打字稿中使用可选链接运算符,但出现错误Property 'dog' does not exist on type '{ name: string; cat: Record<string, string>; }'.
。打字稿的错误抱怨完全有道理,但我想知道我是否可以四处走动?
操场
const adventurer: {name: string;cat:Record<string, string>} = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer?.dog;
console.log(dogName);
Run Code Online (Sandbox Code Playgroud)
您通过为冒险家提供一个类型来告诉 TS 编译器,该类型永远adventurer不会有属性(编辑:感谢 @jcalz 指出这并不完全正确。请查看下面的评论以获取更多信息)。解决这个问题有两种主要方法:dog
const dogName = (adventurer as any)?.dog;
console.log(dogName);
Run Code Online (Sandbox Code Playgroud)
dogconst adventurer: {name: string;cat:Record<string, string>; dog?: string} = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer?.dog;
console.log(dogName);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3465 次 |
| 最近记录: |