Импорт классов в TypeScript
У менять есть файл test.ts
В нем импортируется классы из файлов jsfile и tsfile
jsfile.js:
class MyClass {
age
myfunc(){
console.log("someTestFunction = " + this.age)
}
}
module.exports = {MyClass}
tsfile.ts:
export class MyClass2 {
age:number
myfunc():void{
console.log("someTestFunction = " + this.age)
}
}
test.ts:
import {MyClass} from "./jsfile"
import {MyClass2} from "./tsfile"
const obj1:MyClass = new MyClass()
const obj2:MyClass2 = new MyClass2()
console.log(obj1)
console.log(obj2)
В выводе получаю следующий результат:
MyClass { age: undefined }
MyClass2 {}
Почему в классе, который был импортирован из js файла, переменная age есть, а в классе из ts ее вообще нет? почему в обоих классах нет метода?
Ответы (1 шт):
Пример
Доки
https://www.typescriptlang.org/tsconfig/#useDefineForClassFields
Использовать определение для полей класса -
useDefineForClassFieldsЭтот флаг используется как часть перехода на следующую стандартную версию полей класса. TypeScript представил поля классов за много лет до того, как он был ратифицирован в TC39. Последняя версия будущей спецификации отличается от реализации TypeScript во время выполнения, но с тем же синтаксисом.
Этот флаг переключает на предстоящее поведение среды выполнения ECMA.
Вы можете узнать больше о переходе в примечаниях к выпуску 3.7.