Table
Table
はレコード ID のテーブル名を放言するクラスです。
インポート
import { Table } from "@tai-kun/surrealdb/decodeonly-datatypes";import { Table } from "@tai-kun/surrealdb/encodable-datatypes";import { Table } from "@tai-kun/surrealdb/standard-datatypes";
.constructor()
新しい Table
オブジェクトを作成します。
new Table(source: string); // decode-only, encodablenew Table(source: string | { name: string }); // standard
引数
source
テーブル名または Table
オブジェクトです。プリセットが standard 未満ならテーブル名のみ渡せます。
返値
new
を通じて呼び出された場合、Table
はそのインスタンスを返します。
.name
インスタンス プロパティー >=decode-only
テーブル名です。このプロパティーを取得する場合、文字列はエスケープされません。
.name: string;
例
このプロパティーを取得する場合、文字列はエスケープされません。
import { Table } from "@tai-kun/surrealdb/decodeonly-datatypes";
const table = new Table("foo-bar");console.log(table.name);//-> foo-bar
.toString()
インスタンス メソッド >=encodable
Table
オブジェクトを SurrealQL の変数で利用可能な文字列に変換します。
.valueOf()
と .toJSON()
はこのメソッドと同じ結果を返します。
.toString(): string;
引数
なし。
返値
テーブル名を返します。
例
import { Table } from "@tai-kun/surrealdb/encodable-datatypes";
const table = new Table("foo-bar");console.log(table.toString());//-> foo-bar
.toSurql()
インスタンス メソッド >=encodable
Table
オブジェクトを SurrealQL に埋め込める文字列に変換します。.toString()
と似ていますが、テーブル名は SurrealDB の実装と同じようにエスケープされます。
.toSurql(): string;
引数
なし。
返値
テーブル名にエスケープされた文字列を返します。
例
import { Table } from "@tai-kun/surrealdb/encodable-datatypes";
const table = new Table("foo-bar");console.log(table.toSurql());//-> `foo-bar`
.clone()
インスタンス メソッド =standard
Table
オブジェクトを複製します。
.clone(): this;
引数
なし。
返値
新しい Table
オブジェクトを返します。Table
クラスを継承している場合、そのクラスのインスタンスが返されます。
発展
型ガード
Table
のテーブル名を型パラメーターを使って型安全にすることができます:
import { Table } from "@tai-kun/surrealdb/standard-datatypes";
function isUserTable(table: unknown): table is Table<"user"> { return table instanceof Table && table.name === "user"}
Table
オブジェクトの汎用的な判定
プリセットに依存せずに値が Table
オブジェクトかを判定するには isTable
関数を使うことを推奨します。この関数は instanceof
を使用しないため、検証する値のプリセットが不明な場合に役立ちます。
import { isTable } from "@tai-kun/surrealdb";