javascript - Hur skapar man ett nytt objekt för en klass utan att använda dess modulnamn?
Jag har en klass som nedan och jag har detta i en separat fil kallad File1
module test {
export class myClass{
constructor(MyName: any) {
}
}
}
I en annan fil som kallas File2 skapar jag ett objekt för ovanstående klass enligt nedan.
module test {
class myClass2{
var object = new myClass("name");
}
}
om ovanstående TypeScript-kod för objekt skapande omvandlas till JavaScript-kod ser det ut så här
var object = new test.myClass("name");
Men faktiskt behöver jag att det ska se ut så här i js
var object = new myClass("name");
Kan någon snälla hjälpa mig att göra detta?
Svar #1
Varsågod:
module test {
export class myClass{
constructor(MyName: any) {
}
}
}
module test {
var myClass = test.myClass;
var object = new myClass("name");
}
Den genererade js:
var myClass = test.myClass;
var object = new myClass("name");
Prova det
Uppdatering: Om du inte vill se någon test. i din js, sätt inte klassen i modulen, alltså:
class myClass{
constructor(MyName: any) {
}
}
module test {
var object = new myClass("name");
}
Uppdatering 2: Eftersom du vill använda befintlig Js från TypeScript behöver du använda en ambient deklaration, dvs. declare :
declare class myClass{
constructor(MyName: any);
}
module test {
var object = new myClass("name");
}
