* Copyright (c) 2023 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
declare function print(str:any):string;
class MyBoolean extends Boolean {
constructor(arg:boolean) {
super(arg);
}
}
let b = new MyBoolean(true);
print(b instanceof MyBoolean);
print(b instanceof Boolean);
class MyNumber extends Number {
constructor(arg:number) {
super(arg);
}
}
let n = new MyNumber(1)
print(n instanceof MyNumber);
print(n instanceof Number);
class MyDate extends Date {
constructor(arg:any) {
super(arg);
}
}
let d = new MyDate(16455456000)
print(d instanceof MyDate);
print(d instanceof Date);
class MyArray extends Array {
constructor(arg:number) {
super(arg);
}
}
let a = new MyArray(1);
print(a instanceof MyArray);
print(a instanceof Array);