При работе с TypeScript вы можете столкнуться с сообщением об ошибке: «Аргумент типа «строка | null» не может быть назначен параметру типа «строка». Тип «null» — нет». Эта ошибка возникает, когда вы пытаетесь передать строку или нулевое значение функции, которая ожидает только строковый параметр. В этой статье мы рассмотрим несколько методов устранения этой ошибки и предоставим примеры кода для каждого подхода.
Метод 1: утверждение типа
Утверждение типа позволяет явно указать тип переменной. В этом случае вы можете подтвердить, что аргумент является строкой, а не нулевым, используя оператор восклицательного знака (!).
function processString(input: string) {
// Process the string
}
const userInput: string | null = getUserInput();
if (userInput !== null) {
processString(userInput!); // Assertion that userInput is a string
}
Метод 2: проверка на нулевое значение
Вы можете использовать условный оператор, чтобы проверить, имеет ли аргумент значение NULL, прежде чем передавать его в функцию.
function processString(input: string) {
// Process the string
}
const userInput: string | null = getUserInput();
if (userInput !== null) {
processString(userInput);
}
Метод 3: значение по умолчанию
В некоторых случаях может потребоваться указать значение по умолчанию, если аргумент имеет значение NULL. Для этого можно использовать нулевой оператор объединения (??).
function processString(input: string) {
// Process the string
}
const userInput: string | null = getUserInput();
const stringValue = userInput ?? "default value";
processString(stringValue);
Метод 4: защита типа
Защита типа — это способ сузить тип переменной внутри условного блока. Вы можете использовать оператор if с оператором typeof, чтобы проверить тип аргумента.
function processString(input: string) {
// Process the string
}
function isString(value: string | null): value is string {
return typeof value === "string";
}
const userInput: string | null = getUserInput();
if (isString(userInput)) {
processString(userInput);
}
Метод 5: Оператор утверждения, отличный от NULL.
Если вы уверены, что аргумент никогда не будет иметь значение NULL, вы можете использовать оператор утверждения, отличный от NULL (!), чтобы указать TypeScript игнорировать возможность значения NULL.
Метод 5. >
function processString(input: string) {
// Process the string
}
const userInput: string | null = getUserInput();
processString(userInput!); // Assertion that userInput is a string, ignoring null
В этой статье мы рассмотрели несколько методов обработки аргумента типа String | Ошибка Null в TypeScript. Используя утверждение типа, проверки на null, значения по умолчанию, защиту типа или оператор утверждения, отличный от NULL, вы можете гарантировать, что ваш код правильно обрабатывает как строковые, так и значения NULL. Не забудьте выбрать метод, который лучше всего подходит для вашего конкретного случая использования.