javascript - Există o modalitate de a extinde String într-o nouă clasă în TypeScript?
Mi-ar plăcea să pot crea (sau să extind din String) un tip TypeScript care să se comporte ca String. Să pot atribui valoarea astfel: const object: MyCustomString='some value'
Răspuns #1
Citez documentația despre extends:
Cuvântul cheie
extendspoate fi folosit pentru a crea subclase din clase personalizate, precum și din obiecte încorporate.
Deci, este autorizat să se creeze subclase ale tipurilor încorporate în ES2015:
class MyString extends String {
get specialProp() {
return this + " is special!"
}
}
const s = new MyString("abc");
console.log(s.specialProp); // abc is special!
Sau, alt exemplu:
class SourceString extends String {
constructor(s: string, public translate = false) {
super(s);
}
}
const s = new SourceString("abc", true);
console.log(s.translate); // true
Notificare: Instanțele clasei dvs. personalizate nu vor fi primitive string, ci obiecte String:
console.log(typeof s); // "object"
console.log(s instanceof String); // true
