【发布时间】:2023-02-01 07:32:23
【问题描述】:
我想知道为什么会发生错误,而不是如何消除错误。 我知道我可以使用 as 语法来消除错误。
请告诉我为什么会发生错误。 我的理解是变量 v2 和 v3 都不应该有任何会阻止类型识别的元素。 变量 v2 肯定是一个 PROMISE 字符串类型的变量。 变量 v3 绝对是类 Hoge2 的一个实例。 请告诉我为什么会出现错误,因为我想学习打字稿!
async function test() {
let v1: string | null = null;
while (true) {
const v2 = await hoge(v1);
const v3 = new Hoge2(v2);
v1 = v3.prop;
}
}
async function hoge(_: string | null){
return "";
}
class Hoge2{
constructor(private readonly _:any){}
get prop(){
return "";
}
}
'v2' 隐式具有类型 'any' 因为它没有类型注释并且在其自己的初始化程序中直接或间接引用
'v3' 隐式具有类型 'any' 因为它没有类型注释并且在其自己的初始化程序中直接或间接引用。
【问题讨论】:
-
我在 typescript github 上发现了一个问题。我不明白其中的逻辑,但这是当前打字稿规范的限制。我现在关闭它,我找到了原因。 github.com/microsoft/TypeScript/issues/30308
标签: typescript