message: docs(quick-start-guide): fix typos & extend documentation
diff: @@ -40,7 +40,7 @@ const JobSchema = new mongoose.Schema({
  });
  const CarModel = mongoose.model('Car', {
  - model: string,
  + model: String,
  });
  const UserModel = mongoose.model('User', {
  @@ -95,7 +95,7 @@ class User {
  ```
  :::caution
  -`type` / `ref` have to be defined when not using Primitives, because Reflection only returns basic information. [Look here for why](https://github.com/microsoft/TypeScript/issues/7169)
  +`type` has to be defined when working with Arrays, because Reflection only returns basic information. [Look here for why](https://github.com/microsoft/TypeScript/issues/7169)
  Like `public: string[]` is in reflection only `Array`.
  :::
  @@ -169,7 +169,7 @@ let document = await KittenModel.create({ name: 'Kitty' });
  - Typegoose is a wrapper for Mongoose's models
  - Typegoose does not modify any functions of Mongoose
  -- Typegoose aims to get Mongoose's models to be stable through type-information
  +- Typegoose aims to get Mongoose's models to be stable through type-information from classes (without defining extra interfaces)
  - Typegoose aims to make Mongoose more usable by making the models more type-rich with TypeScript
  - Decorated schema configuration classes (like `KittenClass` above) must use explicit type declarations
  @@ -187,6 +187,7 @@ class KittenClass {
  @prop()
  public species?: string;
  + // the "this" definition is required to have the correct types
  public static async findBySpecies(this: ReturnModelType<typeof KittenClass>, species: string) {
  return this.find({ species }).exec();
  }
  @@ -212,6 +213,7 @@ class KittenClass {
  @prop()
  public species?: string;
  + // the "this" definition is required to have the correct types
  public async setSpeciesAndSave(this: DocumentType<KittenClass>, species: string) {
  this.species = species;
  await this.save();
  @@ -250,16 +252,18 @@ class KittenClass {
  @prop({ default: false })
  public isKitten?: boolean
  -
  - public async setSpeciesAndSave(this: DocumentType<KittenClass>, species: string) {
  - this.species = species;
  - return await this.save();
  - }
  }
  +
  +const KittenModel = getModelForClass(KittenClass);
  +
  +const doc = new KittenModel({ name: 'SomeCat', species: 'SomeSpecies', age: 0 });
  +await doc.save(); // this should output "We have a kitten here."
  +const doc = new KittenModel({ name: 'SomeCat', species: 'SomeSpecies', age: 2 });
  +await doc.save(); // this should output "We have a big kitty here."
  ```
  -For detailed explanation of Hooks, please see [Hooks](api/decorators/hooks.md).
  +For detailed explanation of Hooks, please see [Hooks](../api/decorators/hooks.md).
  Note:
  - Do not use Arrow Functions, because it will break the binding of `this`
  -- For ESLint users: Make sure that rule `eslint-no-use-before-defining` is disabled, otherwise you might get ESLint errors / warnings
  +- For ESLint users: Make sure that rule `eslint-no-use-before-defining` is disabled, otherwise you might get ESLint errors / warnings inside the hooks
  