gpt4 book ai didi

javascript - 自定义字符串类

转载 作者:行者123 更新时间:2023-12-05 04:02:53 25 4
gpt4 key购买 nike

我正在寻找 1-2 拳。

  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;
}

最佳答案

实际上,忽略我之前关于原始数据类型和对象不同的评论,我只是自己测试了这个,所有测试都通过了? ...

class TZDatabaseName extends String {
constructor(...args) {
super(...args);
return this;
}
}


describe('TZDatabaseName', function() {
it('Instance of String', function() {
expect(new TZDatabaseName('Asia/Tokyo') instanceof String).toBeTruthy();
});

it('Instance of TZDatabaseName', function() {
expect(new TZDatabaseName('Asia/Tokyo') instanceof TZDatabaseName).toBeTruthy();
});

it('Equal to Primitive Type', function() {
expect(new TZDatabaseName('Asia/Tokyo')).toEqual('Asia/Tokyo');
});
});


describe('More TZDatabaseName', function() {
it('Primitive Instance of TZDatabaseName', function() {
expect(''
instanceof TZDatabaseName).toBeFalsy();
});

it('Primitive Instance of String', function() {
expect(''
instanceof String).toBeFalsy();
});

it('String Instance of TZDatabaseName', function() {
expect(String('') instanceof TZDatabaseName).toBeFalsy();
});
});


// Jasmine htmlReporter
(function() {
var env = jasmine.getEnv();
env.addReporter(new jasmine.HtmlReporter());
env.execute();
}());
<link rel="stylesheet" href="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css" />
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script>
<script src="https://cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>

关于javascript - 自定义字符串类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54078177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com