パッド開始polyfill.ts
ポリフィルから:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart)
宣言から:
https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es2017.string.d.ts
interface String {
padStart(targetLength: number, padString?: string): string;
}
// https://github.com/uxitten/polyfill/blob/master/string.polyfill.js
// https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
if (!String.prototype.padStart) {
String.prototype.padStart = function padStart(targetLength, padString) {
targetLength = targetLength >> 0; //floor if number or convert non-number to 0;
padString = String(padString || ' ');
if (this.length > targetLength) {
return String(this);
}
else {
targetLength = targetLength-this.length;
if (targetLength > padString.length) {
padString += padString.repeat(targetLength/padString.length); //append to original to ensure we are longer than needed
}
return padString.slice(0, targetLength) + String(this);
}
};
}
パッド-start.pipe
import 'pad-start-polyfill';
import {Pipe} from '@angular/core';
@Pipe({name: 'padStart'}) export default class {
transform(value: string, targetLength: number, padString = ' ') {
return value.padStart(targetLength, padString);
}
}
temaplate-usage.html
<span>
{{value | padStart : 8 : '0'}}
</span>