Number Parsing in TypeScript
Parsing numbers from strings is a basic but common task in many programs; here’s how to do it in TypeScript.
// TypeScript doesn't have a built-in package for number parsing
// like Go's strconv, but we can use JavaScript's built-in functions
function main() {
// With parseFloat, we don't need to specify precision
const f = parseFloat("1.234");
console.log(f);
// parseInt takes a radix parameter, 10 for decimal
const i = parseInt("123", 10);
console.log(i);
// parseInt will recognize hex-formatted numbers
const d = parseInt("0x1c8", 16);
console.log(d);
// There's no direct equivalent to ParseUint, but we can use parseInt
const u = parseInt("789", 10);
console.log(u);
// There's no direct equivalent to Atoi, but parseInt works similarly
const k = parseInt("135", 10);
console.log(k);
// Parsing functions return NaN on bad input
const badParse = parseInt("wat", 10);
console.log(isNaN(badParse) ? "Invalid syntax" : badParse);
}
main();To run the program, save it as number-parsing.ts and use ts-node (assuming you have it installed):
$ ts-node number-parsing.ts
1.234
123
456
789
135
Invalid syntaxIn TypeScript, we use JavaScript’s built-in parseFloat and parseInt functions for number parsing. Unlike Go’s strconv package, these functions don’t require importing any modules.
parseFloat is used for parsing floating-point numbers. It doesn’t require specifying precision as it uses JavaScript’s default number precision.
parseInt is used for parsing integers. It takes two arguments: the string to parse and the radix (base of the number system). For decimal numbers, we use radix 10. For hexadecimal numbers, we use radix 16.
TypeScript doesn’t have a direct equivalent to Go’s ParseUint, but parseInt can be used for parsing unsigned integers as well.
There’s no direct equivalent to Go’s Atoi function, but parseInt with a radix of 10 serves the same purpose for parsing base-10 integers.
When parsing fails, these functions return NaN (Not-a-Number) instead of an error. We can use the isNaN function to check if parsing was successful.
Next, we’ll look at another common parsing task: URLs.