В качестве фона я использую Prisma (graphql), mysql2 (nodejs) и машинопись.
Я использую интерактивный скрипт командной строки для подключения к mysql2.
Это предупреждение, которое я вижу:
Игнорирование неверного параметра конфигурации, переданного в Connection: type. это
в настоящее время предупреждение, но в будущих версиях MySQL2 ошибка
будет брошен, если вы передадите неверные параметры конфигурации
Подключение
Вот как я создаю экземпляр mysql2 в моем классе MysqlConnector:
this.connectionPromise = await this.mysql.createConnection(this.connectionOptions)
"connectionOptions" устанавливается в конструкторе класса:
constructor(connectionDetails: MysqlConnectionDetails) {
Это мое определение типа:
export interface MysqlConnectionDetails {
host: string
port: number
user: string
password: string
database?: string
}
Это определение типа объекта, который я передаю в мой класс MysqlConnector:
export interface DatabaseCredentials {
type: DatabaseType
host: string
port: number
user: string
password: string
database?: string
alreadyData?: boolean
schema?: string
ssl?: boolean
filter?: any
}
Итак, я передаю объект с дополнительными параметрами, которые mysql2 не хочет / не нуждается. Я новичок в Typescript. Я пробовал это, прежде чем передать объект в класс MysqlConnector:
let forDeletion = ['type', 'alreadyData']
connector = new MysqlConnector(credentials.filter(item => !forDeletion.includes(item)))
Но я получаю ошибку, говоря, что «filter» не является свойством типа «DatabaseCredentials», и я пришел к выводу, что это, вероятно, неправильный способ сделать это.
Я предположил, что в Typescript (через tsconfig) есть способ автоматически отфильтровывать свойства, которые не относятся к получающему типу. «MysqlConnectionDetails» не имеет свойства «тип» в своем определении, поэтому он получает его динамически, когда я передаю другой тип.