이 답변은 TypeScript로 변환하지 않으려는 JavaScript가 있지만을 최소한으로 변경하여 유형 검사의 이점을 원한다고 가정합니다 .js
. ㅏ.d.ts
파일은 매우 C 또는 C ++ 헤더 파일과 같다. 그 목적은 인터페이스를 정의하는 것입니다. 예를 들면 다음과 같습니다.
mashString.d.ts
/** Makes a string harder to read. */
declare function mashString(
/** The string to obscure */
str: string
):string;
export = mashString;
mashString.js
// @ts-check
/** @type {import("./mashString")} */
module.exports = (str) => [...str].reverse().join("");
main.js
// @ts-check
const mashString = require("./mashString");
console.log(mashString("12345"));
여기서 관계 mashString.d.ts
는 인터페이스를 정의하고 인터페이스를 mashString.js
구현하며 인터페이스를 main.js
사용하는 것입니다.
형식 검사가 작동하도록하려면 파일에 추가 // @ts-check
하십시오 .js
. 그러나 이것은 main.js
인터페이스를 올바르게 사용하는지 확인 합니다. 또한 mashString.js
올바르게 구현 /** @type {import("./mashString")} */
하기 위해 내보내기 전에 추가 합니다.
당신은 당신의 초기를 만들 수 있습니다 .d.ts
파일을tsc -allowJs main.js -d
다음 필요에 따라 수동으로 편집하여 유형 확인 및 문서를 개선 할 수 있습니다.
대부분의 경우 구현과 인터페이스의 이름은 here mashString
입니다. 그러나 대체 구현을 가질 수 있습니다. 예를 들어 이름 mashString.js
을 바꾸고 reverse.js
다른 이름 을 가질 수 encryptString.js
있습니다.