На мой взгляд, ни один ответ не охватывает все случаи краев, поскольку синтаксический анализ поплавка должен приводить к ошибке.
function parseInteger(value) {
if(value === '') return NaN;
const number = Number(value);
return Number.isInteger(number) ? number : NaN;
}
parseInteger("4") // 4
parseInteger("5aaa") // NaN
parseInteger("4.33333") // NaN
parseInteger("aaa"); // NaN
Я наткнулся на решение этой проблемы. В нашем API у нас есть почтовый запрос, который возвращает следующее.
{
"relationship": {
"token": "jRMcN645BQyDr67yHR3qjsJF",
"security_answer": "Some kind of answer to a security question"
}
}
Вот соответствующий код чванства:
post:
summary: Create a relationship
description: Create a relationship between a parent and a student. The student accepts the parent's `Invitation` by providing it's `token` and the correct answer to their `security_question`. Also marks the invitation as accepted so it cannot be used again.
tags:
- Relationships
parameters:
- $ref: '#/parameters/user_id'
- name: Accept-Language
description: 'see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language'
in: header
type: string
default: en
- in: body
name: relationship
schema:
type: object
required:
- relationship
properties:
relationship:
$ref: '#/definitions/RelationshipCreate'
responses:
'201':
description: ''
schema:
$ref: '#/definitions/Relationship'
'400':
description: Bad Request
Значением ключа «отношение» является объект RelationshipCreation. Swagger-codegen, по-видимому, анализирует этот объект ответа и переписывает предполагаемую модель отношений с моделью с этим ключом в качестве имени и свойством типа RelationshipCreation.
Вывод, будьте осторожны при использовании ключей, которые соответствуют вашим существующим моделям, вы можете перезаписать ваши существующие модели при создании кода.