`TypeScript` 的 [Truthiness narrowing](https://link.segmentfault.com/?enc=09uZPoBPhTJVy3EXR1NvGA%3D%3D.%2Fj4CIx96AnfgXHI22yCp1N79j3nmrSEUOtRlHXgSAFtC7UQlPoEUloXqOJm1t7sNCnPbEIWC6nY6YLLsLpXv19wj5QR5BHPIp04P8kYGxTjBqLXgI6olRiyNbRuCSsL4) 有如下介绍: > all coerce to false, and other values get coerced to true. You can always > coerce values to booleans by running them through the Boolean function, or > by using the shorter double-Boolean negation. (The latter has the advantage > that TypeScript infers a narrow literal boolean type true, while inferring > the first as type boolean.) // both of these result in 'true' Boolean("hello"); // type: boolean, value: true !!"world"; // type: true, value: true 当我键入以下代码时,类型提示却都是 `boolean` : let x = Boolean('hello') let y = !!'hello'  这是为何?