typescript - השתמש בטייפינגס עבור מחלקת ES6 בתוך המחלקה עצמה
יש לי מחלקת ES6 קיימת ClassA.js כזו:
module.exports = class A {
test(param) {
console.log(param)
}
test2(param) {
this.test() // no warning here
}
}
גם יש לי קובץ הקלדות ClassA.d.ts
export type A = {
test(param: string): void
test2(param: string): void
}
גם יש לי index.js
const A = require('./ClassA');
const a = new A();
a.test(1);
זו, כצפוי, נותנת שגיאת קומפיילר בשימוש ב-WebStorm מכיוון ש-test מצפה ל-string.
עם זאת אני לא מקבל אזהרה עבור this.test() בתוך ClassA.js שחסר לה הפרמטר. גם אם קוראים ל- this.(1) זה לא נותן אזהרה.
האם יש דרך לקבל גם אזהרות בתוך המחלקה עצמה? וגם האם אני יכול להשתמש ב-tsc כדי לכלול את ClassA.js ולקבל אזהרת קומפילציה עבור מחלקה שגויה ב-index.js וגם בתוך ClassA.js?
תשובה #1
הקבצים מסוג Typings אינם מיועדים לשימוש לבדיקה סטטית של הספריות עצמן, אי אפשר לגרום ל-IDE (או לקומפיילר tsc) להשתמש בהם למטרה זו. אני מציע להשתמש במקום זאת בהערות JSDoc, כמו:
module.exports = class A {
/**
* @param {string} param
*/
test(param) {
console.log(param)
}
/**
* @param {string} param
*/
test2(param) {
this.test() // no warning here
}
}
