为什么 console.log(new Map<String, Number>([])) 在 JavaScript 中记录 true,true?

pbu*_*007 3 javascript

究竟是什么导致这个类似 TypeScript 的表达式登录true, trueJavaScript?

console.log(new Map<String, Number>([]))
Run Code Online (Sandbox Code Playgroud)

Ben*_*ard 5

如果您以不同的方式对其进行格式化,您会发现这可能看起来像 TS,但它只是 JavaScript。巧合的是,尖括号和逗号与 console.log 的两个参数的语法完美匹配,其中每个参数都是一个比较,小于和大于。比较的是:

new Map < String // true
Number > [] // true
Run Code Online (Sandbox Code Playgroud)

以一种更明显的方式写出来:

console.log(new Map < String, Number > ([]))
Run Code Online (Sandbox Code Playgroud)

如果您打算将它写在一个 TS 文件中,它可能会被解释(如您所愿)作为类型泛型,那么您可能正在寻找不同的类型:stringand number,而不是您在示例中使用的StringandNumber构造函数。