Ищу 1-2 удара.
- Я бы хотел настроить пользовательские строки.
- Во время выполнения я хотел бы знать тип строки, отличный от простой строки.
Вот код:
class TZDatabaseName extends String {
constructor(...args) {
super(...args);
return this;
}
}
expect(new TZDatabaseName('Asia/Tokyo') instanceof String).toBeTruthy();
expect(new TZDatabaseName('Asia/Tokyo') instanceof TZDatabaseName).toBeTruthy();
expect(new TZDatabaseName('Asia/Tokyo')).toEqual('Asia/Tokyo');
Я бы хотел, чтобы все три проверки, указанные ниже, прошли.
Я также возился с этим методом приведения строк, но у меня нет способа проверить во время выполнения тип переменной.
export abstract class TZDatabaseName extends String {
public static MAKE(s: string): TZDatabaseName {
if (!s.match(/^\w+\/\w+$/)) throw new Error('invalid TZDatabaseName');
return s as any;
}
private __TZDatabaseNameFlag;
}