这类似于#40796374,但这是围绕类型,而我使用接口。

给定下面的代码:

接口Foo { 名称:字符串; } 函数go() { 让实例:Foo | null = null; Let mutator = () => { 实例= { 名称:“字符串” }; }; mutator (); If (instance == null) { console.log('实例为空或未定义'); }其他{ console.log (instance.name); } }

我有一个错误说'属性'名称'不存在类型'从不'。

我不明白实例怎么会是一个“永远”。有人能解释一下吗?


当前回答

如果你使用React useRef钩子和TypeScript,而不是使用任何你可以做下面的事情。

const ref = useRef<HTMLInputElement>(null);

其他回答

在我的情况下(我使用typescript),我试图模拟假数据的响应,其中数据被分配后。我的第一个尝试是:

let response = {status: 200, data: []};

后来,在分配假数据时,它开始抱怨它不能分配给类型'never[]'。 然后我像这样定义响应,它接受了它。

let dataArr: MyClass[] = [];
let response = {status: 200, data: dataArr};

以及假数据的分配:

response.data = fakeData;

如果你使用React useRef钩子和TypeScript,而不是使用任何你可以做下面的事情。

const ref = useRef<HTMLInputElement>(null);

在我自己的例子中,当我初始化数组时。我使用:

selectedActors: any = [];

所以一开始它是“动态的”

如果你把Component写成React。FC,使用useState(),

这样写会很有帮助:

const [arr, setArr] = useState<any[]>([])

如果您以这种方式使用UseState,应该不会有问题

const [data, setData] = useState<any>([]);

在Javascript的情况下,它直接工作,因为所有的数据类型都是Any 默认情况下,Typescript中不是这样的,所以你必须让语言知道:)