gpt4 book ai didi

typescript - 基于变量声明类型

转载 作者:搜寻专家 更新时间:2023-10-30 21:05:49 24 4
gpt4 key购买 nike

在 TypeScript 中,我可以做这样的事情来让一个变量基于另一个变量隐式类型化。

var json = {foo: 1};
var someTypedVariable = json; // Assignment gives implicit type

someTypedVariable.bar = 1; // Error
someTypedVariable.foo = 1; // Good

但是有没有什么方法可以不用赋值也能达到同样的效果呢?我知道我能做到:

var someTypedVariable: {foo:number};

但是像这样的东西呢:

var json = {foo: 1};
var someTypedVariable: json; // Explicitly typing without assignment

有什么办法可以实现吗?

我为什么要这样做?我有一些大型 JSON 结构,我想对其进行类型检查。将示例数据放入 ts 文件很容易,当我将该数据分配给变量时,我会对该变量进行类型检查。我不想维护 JSON 的类结构 - 我只是希望能够(当 JSON 结构发生变化时)将新的 JSON 文件复制/粘贴到我的项目中,并查看我的任何依赖代码是否中断。

最佳答案

当然有办法!作为the related proposal of type queries已经实现:

var json = {foo: 1};
var someTypedVariable : typeof json; // type query, not the string "object"

someTypedVariable.bar = 1; // Error
someTypedVariable.foo = 1; // Good

需要注意的是,类型表达式上下文中的 typeof 运算符是一个类型查询,与简单的 typeof 的含义不同表达。

您可以在 TypeScript playground 中尝试.

关于typescript - 基于变量声明类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37577987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com