在下面的站点中,TypeScript 2.9支持定义良好的JSON。
https://blogs.msdn.microsoft.com/typescript/2018/05/31/announcing-typescript-2-9/#json-imports
“良好类型”JSON的含义是什么?据我所知,JSON有6种有效的数据类型:字符串,数字,对象,数组,布尔值和空值。因此,我认为每个JSON数据类型都是类型很好或与TypeScript基本类型匹配良好。这就是为什么我无法弄清楚“井型”的确切含义。
与此相反,什么是“not-well-typed”json?
答案 0 :(得分:2)
嗯,这个例子解释了它:
// ./src/settings.json
{
"dry": false,
"debug": false
}
// ./src/foo.ts
import settings from "./settings.json";
settings.debug === true; // Okay
settings.dry === 2; // Error! Can't compare a `boolean` and `number`
由于任何JSON属性都可以是任何JSON类型,您可能认为比较settings.dry === 2
不会导致任何编译错误。它只会在运行时失败。
但实际上它会发出一个编译时错误,因为TypeScript会从JSON中推断出类型,因此会阻止你做一些愚蠢的事情,比如将一个布尔变量与一个数字进行比较:这样做不会感。
就像你在TypeScript中一样:
const settings = {
dry: false,
debug: false
}
if (settings.dry === 2) { ... }