UNPKG

ipsos-components

Version:

Material Design components for Angular

18 lines (16 loc) 876 B
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** Coerces a data-bound value (typically a string) to a number. */ export function coerceNumberProperty(value: any): number; export function coerceNumberProperty<D>(value: any, fallback: D): number | D; export function coerceNumberProperty(value: any, fallbackValue = 0) { // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string, // and other non-number values as NaN, where Number just uses 0) but it considers the string // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN. return isNaN(parseFloat(value as any)) || isNaN(Number(value)) ? fallbackValue : Number(value); }