javascript - er det mulig for '@ts-check' å kjøre som TypeScript med strictNullChecks?


Jeg brukte Typescript en stund og likte det på en måte, bortsett fra delen der kompileringen kan ta ganske lang tid. I dag oppdaget jeg at i VSCode kunne jeg bare skrive JS-kode, og legge til litt typenotasjon med JSDoc, og legge til en //@ts-check på første linje i koden.

men jeg hadde ikke den samme tilliten til koden som jeg hadde med tsc med --strictNullCheck-flagget.

så, spørsmålet mitt er, er det mulig å kjøre //@ts-check med strictNullCheck i js-kode?

dette er et eksempel hvor jeg ikke fikk en kompilasjonsfeil:

// type.js
// @ts-check
/**
 * @typedef Foo
 * @property {string} foo
 * @property {string} [bar]
 */

 /** @type {Foo} */
 const a = { bar: 'test', foo: undefined }; // <- should be compile error
// index.js
import * as T from './type';
/** @type {T.Foo} */
const a = {}; // <- should be compile error
a.foo.replace // <- will be runtime error.